﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using l1cs.server.model.Instance;
using l1cs.server.serverpackets;
using l1cs.server.templates;
using l1cs.server.model;

namespace l1cs.server.clientpackets
{
    public class C_AddBookmark : ClientBasePacket
    {
        private const String _C_ADD_BOOKMARK = "[C] C_AddBookmark";
        private static Logger _log = Logger.getLogger( typeof( C_AddBookmark ).FullName );

        public C_AddBookmark( byte[] decrypt, ClientThread client )
            : base( decrypt )
        {
            String s = readS();

            L1PcInstance pc = client.getActiveChar();
            if ( pc.isGhost() )
            {
                return;
            }

            if ( pc.getMap().isMarkable() || pc.isGm() )
            {
                if ( ( L1CastleLocation.checkInAllWarArea( pc.getX(), pc.getY(), pc
                        .getMapId() ) || L1HouseLocation.isInHouse( pc.getX(), pc
                        .getY(), pc.getMapId() ) )
                        && !pc.isGm() )
                {
                    // \f1ここを記憶することができません。
                    pc.sendPackets( new S_ServerMessage( 214 ) );
                }
                else
                {
                    L1BookMark.addBookmark( pc, s );
                }
            }
            else
            {
                // \f1ここを記憶することができません。
                pc.sendPackets( new S_ServerMessage( 214 ) );
            }
        }

        override
        public String getType()
        {
            return _C_ADD_BOOKMARK;
        }
    }
}
